Ext.ns('Tm.task');
Tm.task.TaskFileSearchPanel = Ext.extend(Ext.Panel, {
			id : 'taskFileSearchPanel',
			frame : true,
			autoWidth : true,
			title : '文件查询',
			layout : 'fit',
			taskId : null,
			initComponent : function() {
				var form = new Tm.common.FormPanel({
							layout : 'table',
							layoutConfig : {
								columns : 3
							},
							defaults : {
								xtype : 'textfield',
								margins : '0 5 0 0',
								width : 250
							},
							items : [{
										plugins : [Ext.ux.FieldLabeler],
										name : 'name',
										fieldLabel : '文件名称'
									}, {
										plugins : [Ext.ux.FieldLabeler],
										name : 'type',
										fieldLabel : '文件类型',
										//width:150,
										xtype : 'combo',
										mode : 'local',
										typeAhead : true,
										forceSelection : true,
										triggerAction : 'all',
										emptyText : '请选择...',
										selectOnFocus : true,
										store : Tm.data.fileType2
									}, {
										plugins : [Ext.ux.FieldLabeler],
										fieldLabel : '上级目录',
										xtype : 'treecombobox',
										name : 'parent',
										hiddenName : 'parent',
										dataUrl : 'file/loadAllFilelyFile.do',
										filterNodeId : this.dataId,
										width : 300
									}]
						});
				var sm = new Ext.grid.CheckboxSelectionModel({
							singleSelect : true
						});
				var cm = new Ext.grid.ColumnModel([sm, {
							header : 'id',
							width : 20,
							dataIndex : 'id',
							hidden : true
						}, {
							header : '文件名称',
							width : 80,
							dataIndex : 'name',
							sortable : true,
							renderer : function(data, metadata, record, rowIndex, columnIndex, store) {
								metadata.attr = 'ext:qtitle="' + this.header + '"' + ' ext:qtip="' + data + '"';
								return data;
							}
						}, {
							header : '文件路径',
							width : 180,
							dataIndex : 'path',
							sortable : true,
							renderer : function(data, metadata, record, rowIndex, columnIndex, store) {
								metadata.attr = 'ext:qtitle="' + this.header + '"' + ' ext:qtip="' + data + '"';
								return data;
							}
						}, {
							header : '文件类型',
							width : 40,
							dataIndex : 'type',
							align : 'center',
							xtype : 'combocolumn',
							sortable : true,
							editor : new Ext.form.ComboBox({
										name : 'type',
										editable : false,
										typeAhead : true,
										forceSelection : true,
										hiddenName : 'enable',
										mode : 'local',
										triggerAction : 'all',
										emptyText : '请选择...',
										selectOnFocus : true,
										store : Tm.data.fileType,
										allowBlank : false
									})
						}
						, {
							header : '描述',
							width : 250,
							dataIndex : 'description',
							sortable : true,
							renderer : function(data, metadata, record, rowIndex, columnIndex, store) {
								metadata.attr = 'ext:qtitle="' + this.header + '"' + ' ext:qtip="' + data + '"';
								return data;
							}
						}]);
				cm.defaultSortable = true;
				var fields = [{
							name : 'id',
							type : 'int',
							mapping : 'id'
						}, {
							name : 'path',
							type : 'string',
							mapping : 'path'
						}, {
							name : 'name',
							type : 'string',
							mapping : 'name'
						}, {
							name : 'type',
							type : 'string',
							mapping : 'type'
						}, {
							name : 'hasChildren',
							type : 'string',
							mapping : 'hasChildren'
						}, {
							name : 'description',
							type : 'string',
							mapping : 'description'
						}];
				var ds = new Ext.data.Store({
							id : 'fileSearchPanelGridPanelStore',
							proxy : new Ext.data.HttpProxy({
										url : 'file/queryFile.do'
									}),
							reader : new Ext.data.JsonReader({
										totalProperty : 'totalProperty',
										root : 'root',
										id : 'id',
										fields : fields
									}),
							baseParams : {
								start : 0,
								limit : 20
							},
							sortInfo : {
								field : 'id',
								direction : 'ASC'
							},
							autoLoad : true,
							listeners : {
								beforeload : function() {
									Ext.apply(this.baseParams, form.getForm().getFieldValues(false));
									Ext.apply(this.baseParams, {
												'parent' : form.getForm().findField('parent').value
											});
									Ext.apply(this.baseParams, {
												'taskId' : Ext.getCmp('taskFileSearchPanel').taskId
											});
								}
							}
						});
				var grid = new Ext.grid.GridPanel({
							ref : 'grid',
							store : ds,
							sm : sm,
							cm : cm,
							border : false,
							stripeRows : true,
							autoHeight : true,
							viewConfig : {
								forceFit : true
							},
							bbar : new Ext.PagingToolbar({
										plugins : new Ext.ux.ProgressBarPager(),
										pageSize : 20,
										store : ds,
										displayInfo : true,
										emptyMsg : '没有记录'
									}),
							listeners : {
								celldblclick : function(grid, rowIndex, columnIndex, event) {
									var store = grid.getStore();
									var data = store.getAt(rowIndex).data;
									var taskId= Ext.getCmp('taskFileSearchPanel').taskId;

									var taskFileAddPanel = new Tm.task.TaskFileAddPanel({
												dataId : data.id,
												taskId :taskId
											});
									var taskFileAddWindow = new Tm.common.CommonWindow({
												id : 'taskFileAddWindow',
												title : '更新文件',
												// plain : true,
												// bodyStyle : 'padding:5px;',
												items : taskFileAddPanel
											});
									taskFileAddWindow.on('close', function(panel) {
												store.load();
											});
									taskFileAddWindow.show();
								}
							}
						});
				var toolBar = new Ext.Toolbar({
							hideBorders : true,
							buttons : [{
										text : '查询',
										iconCls : 'act_queryIcon',
										handler : function() {
											ds.load();
										}
									}, {
										xtype : 'tbseparator'
									}, {
										text : '重置',
										iconCls : 'act_resetIcon',
										handler : function() {
											form.getForm().reset();
											form.getForm().findField('parent').setValue(null);
										}
									}, {
										xtype : 'tbseparator'
									}, {
										iconCls : 'icon-file',
										tooltip : '新增文件',
										text : '新增文件',
										handler : function() {
											var store = grid.getStore();
											var taskId= Ext.getCmp('taskFileSearchPanel').taskId;
											var taskFileAddPanel = new Tm.task.TaskFileAddPanel({
														taskId:taskId});
											var taskFileAddWindow = new Tm.common.CommonWindow({
														id : 'taskFileAddWindow',
														title : '新增文件',
														items : taskFileAddPanel
													});
											taskFileAddWindow.on('close', function(panel) {
														store.load();
													});
											taskFileAddWindow.show();
										}
									}, {
										xtype : 'tbseparator'
									}, {
										iconCls : 'act_deleteIcon',
										tooltip : '删除',
										text : '删除',
										handler : function() {
											//											console.dir(grid.getSelectionModel());
											var records = grid.getSelectionModel().selections.items;
											if (records.length > 0) {
												var record = records[0];
												if (record.data.id) {
													console.dir(record.data);
													if (record.data.type == 'FILE' && record.data.hasChildren == 'true') {
														Ext.MessageBox.confirm('注意', '所选文件夹包含其他文件，您确定要对其进行删除操作？', function(btn) {
																	if (btn == 'yes') {
																		Ext.Ajax.request({
																					url : 'file/deleteFiles.do',
																					params : {
																						ids : [record.data.id]
																					},
																					success : function(response, action) {
																						grid.store.load();
																					}
																				});
																	} else {
																		return;
																	}
																});
													} else {
														Ext.Ajax.request({
																	url : 'file/deleteFiles.do',
																	params : {
																		ids : [record.data.id]
																	},
																	success : function(response, action) {
																		grid.store.load();
																	}
																});
													}
												}
											}
										},
										scope : this
									}]
						});
				Ext.apply(this, {
							tbar : toolBar,
							items : [form, grid]
						});
				Tm.task.TaskFileSearchPanel.superclass.initComponent.call(this);
			}
		});
